//function foo(a, b, ...rest) {
//   console.log('a = ' + a);
//  console.log('b = ' + b);
// console.log(rest);
//}
//foo(1, 2, 3, 4);



//var myapp = {};
//
//myapp.name = "小刘";
//myapp.version = "1.0";

//myapp.foo = function() {
//   return "foo";
//};

"use strict"

// function foo() {
//     var sum = 0;
//     for (let i = 0; i <= 50; i++) {
//         sum += i;
//     }
//     i += 1;
// }


// //const PI = 3.14;
// //PI = 3; //游览器会报错
// //console.log(PI);

// //新的赋值方法
// var [x, y, j] = ["hello", "hi", "boy"];
// console.log(x, y, j);

// var percoin = {
//     name: "小明",
//     age: "20",
//     sex: "male",
//     passport: "G-158264",
//     school: "NO.1 middle school",
// };
// //var { name, age, passport } = percoin
// //console.log(name + "=" + "name", age + "=" + "age", passport + "=" + "passport");
// //如果在一个函数中有重复的变量会报错
// let { name, passport: id } = percoin

// console.log(name);
// console.log(id);
// console.log(passport);

"use strict"
// var percoin1 = {
//     name: "小明",
//     age: "20",
//     sex: "male",
//     passport: "G-158264",

// };

// var { name, single = true } = percoin1;
// console.log(single);

// var x, y;

// ({ x, y } = {
//     name: "小红",
//     x: 100,
//     y: 50
// })
// console.log(x, y);

// var x = 9,
//     y = 5;
// [x, y] = [y, x];
// console.log(x, y);
// //快速获取域名

// var { hostname: domain, pathname: path } = location;
// console.log(location);

//时间

// function lastDate({ year, month }) {
//     let dd = new Date(year, month);
//     return dd.toLocaleDateString();
// }
// console.log(lastDate({ year: 2021, month: 11 }));

// function forstDate({ year, month, day }) {
//     let dd = new Date(year + '-' + month + '-' + day);
//     return dd;
// }
// console.log(forstDate({ year: 2001, month: 11, day: 11 }));

var faker = {
    name:"小明",
    brith:1998,
    age:function(){
        var a = new Date().getFullYear();
        return a - this.brith;
    }
}

console.log(faker.age());//23

//分成俩个函数写

function GetDate(){
    var b = new Date().getFullYear();
    return b - this.brith;
}
var Mitho = {
    name:"小红",
    brith:1652,
    age:GetDate,
}
console.log(GetDate.call(Mitho));
console.log(Mitho.age());

//装饰器

var count = 0;

var oldParseInt = parseInt;

window.parseInt = function(s){
    count += 1;
    return arguments;
}
console.log(parseInt.apply(parseInt,[2,4,5]));

//一个函数传递给一个新的函数那么此函数称为高阶函数
function song(a){
    console.log("陈旭");
    if (a instanceof Function) {
        a();
    }
}
function moce(){
    console.log("腾鑫");
}
console.log(song());
console.log(song(moce));